home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / awe2-0_1.lha / awe2-0.1 / Src / Generic.h < prev    next >
C/C++ Source or Header  |  1990-07-09  |  1KB  |  60 lines

  1. // This may look like C code, but it is really -*- C++ -*-
  2. // 
  3. // Copyright (C) 1988 University of Illinois, Urbana, Illinois
  4. // Copyright (C) 1989 University of Colorado, Boulder, Colorado
  5. // Copyright (C) 1990 University of Colorado, Boulder, Colorado
  6. //
  7. // written by Dirk Grunwald (grunwald@foobar.colorado.edu)
  8. //
  9. #ifndef _Generic_h
  10. #define _Generic_h
  11. #pragma once
  12.  
  13. #if defined(__GNU__) || defined(__STDC__) || defined(__GNUG__)
  14. /*
  15.  *    See the CPP manual, argument prescan section for explination
  16.  *    of this crap.
  17.  */
  18. #define GENERIC2(a,b) gEnErIc2(a,b)
  19. #define gEnErIc2(a,b) a ## b
  20.  
  21. #define GENERIC3(a,b,c) gEnErIc3(a,b,c)
  22. #define gEnErIc3(a,b,c) a ## b ## c
  23.  
  24. #define GENERIC4(a,b,c,d) gEnErIc4(a,b,c,d)
  25. #define gEnErIc4(a,b,c,d) a ## b ## c ## d
  26.  
  27. #define GENERIC_STRING(a) gEnErIcStRiNg(a)
  28. #define gEnErIcStRiNg(a) #a
  29.  
  30. #else
  31. #if defined(sun)
  32.  
  33. #define GENERIC2(a,b)    a/**/b
  34. #define GENERIC3(a,b,c)    a/**/b/**/c
  35. #define GENERIC4(a,b,c,d)    a/**/b/**/c/**/d
  36. #define GENERIC_STRING(a) "\
  37. a \
  38. "
  39. #else
  40. #if defined(BSD)
  41. #define GENERIC2(a,b) a\
  42. b
  43. #define GENERIC3(a,b,c) a\
  44. b\
  45. c
  46. #define GENERIC4(a,b,c,d) a\
  47. b\
  48. c\
  49. d
  50. #define GENERIC_STRING(a) "\
  51. a \
  52. "
  53. #else
  54.     I do not know how to make GENERICs for your machine
  55. #endif /* BSD */
  56. #endif /* SUN */
  57. #endif /* GNU */
  58.  
  59. #endif /* Generic_h */
  60.